package com.kcht.itsed.mws.alefacade.stdfacade;

import com.kcht.itsed.mws.alefacade.exceptions.*;
import com.kcht.itsed.mws.alemodel.LRProperty;
import com.kcht.itsed.mws.alemodel.LRSpec;

import java.util.List;

public interface ALELR extends ALEIntf{

	void define(String name, LRSpec spec)throws DuplicateNameException ,ValidationException;

	void update(String name, LRSpec spec)throws NoSuchNameException, ValidationException, InUseException, ImmutableReaderException, ReaderLoopException;

	void undefine(String name)throws NoSuchNameException, InUseException, ImmutableReaderException;

	List<String> getLogicalReaderNames();

	LRSpec getLRSpec(String name)throws NoSuchNameException;

	void addReaders(String name, List<String> readers)throws NoSuchNameException, ValidationException, InUseException, ImmutableReaderException, NonCompositeReaderException, ReaderLoopException;

	void setReaders(String name, List<String> readers)throws NoSuchNameException, ValidationException, InUseException, ImmutableReaderException, NonCompositeReaderException, ReaderLoopException;

	void removeReaders(String name, List<String> readers)throws NoSuchNameException, InUseException, ImmutableReaderException, NonCompositeReaderException;

	void setProperties(String name, List<LRProperty> properties)throws NoSuchNameException, ValidationException, InUseException, ImmutableReaderException;

	String getPropertyValue(String name, String propertyName)throws NoSuchNameException;
	
	
}
